home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / libx11inc.lha / X11 / Xm / ArrowBGP.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-13  |  2.4 KB  |  99 lines

  1. /* 
  2.  * (c) Copyright 1989, 1990, 1991, 1992 OPEN SOFTWARE FOUNDATION, INC.
  3.  * ALL RIGHTS RESERVED
  4. */ 
  5. /*   $RCSfile: ArrowBGP.h,v $ $Revision: 1.13 $ $Date: 92/05/14 12:47:40 $ */
  6. /*
  7. *  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  8. #ifndef _XmArrowGadgetP_h
  9. #define _XmArrowGadgetP_h
  10.  
  11. #include <Xm/ArrowBG.h>
  12. #include <Xm/GadgetP.h>
  13.  
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17.  
  18. /*  Arrow class structure  */
  19.  
  20. typedef struct _XmArrowButtonGadgetClassPart
  21. {
  22.    XtPointer extension;
  23. } XmArrowButtonGadgetClassPart;
  24.  
  25.  
  26. /*  Full class record declaration for Arrow class  */
  27.  
  28. typedef struct _XmArrowButtonGadgetClassRec
  29. {
  30.    RectObjClassPart             rect_class;
  31.    XmGadgetClassPart            gadget_class;
  32.    XmArrowButtonGadgetClassPart arrow_button_class;
  33. } XmArrowButtonGadgetClassRec;
  34.  
  35. externalref XmArrowButtonGadgetClassRec xmArrowButtonGadgetClassRec;
  36.  
  37. /* "Gadget caching" is currently under investigation for ArrowBG.  It would
  38.  * be very desirable to cache the XRectangles, requiring immediate reference
  39.  * instead of indirectly through pointers.  ArrowBG will be cached by Beta.
  40.  */
  41. /*  The Arrow instance record  */
  42.  
  43. typedef struct _XmArrowButtonGadgetPart
  44. {
  45.    XtCallbackList activate_callback;
  46.    XtCallbackList arm_callback;
  47.    XtCallbackList disarm_callback;
  48.    unsigned char direction;      /*  the direction the arrow is pointing  */
  49.  
  50.    Boolean selected;
  51.  
  52.    short        top_count;
  53.    short        cent_count;
  54.    short        bot_count;
  55.    XRectangle * top;
  56.    XRectangle * cent;
  57.    XRectangle * bot;
  58.  
  59.    Position old_x;
  60.    Position old_y;
  61.  
  62.    GC               arrow_GC;        /* graphics context for arrow drawing */
  63.    XtIntervalId     timer;    
  64.    unsigned char    multiClick;     /* KEEP/DISCARD resource */
  65.    int              click_count;
  66.    GC               insensitive_GC; /* graphics context for insensitive arrow drawing */
  67.  
  68. } XmArrowButtonGadgetPart;
  69.  
  70.  
  71. /*  Full instance record declaration  */
  72.  
  73. typedef struct _XmArrowButtonGadgetRec
  74. {
  75.    ObjectPart              object;
  76.    RectObjPart             rectangle;
  77.    XmGadgetPart            gadget;
  78.    XmArrowButtonGadgetPart arrowbutton;
  79. } XmArrowButtonGadgetRec;
  80.  
  81.  
  82. /********    Private Function Declarations    ********/
  83. #ifdef _NO_PROTO
  84.  
  85.  
  86. #else
  87.  
  88.  
  89. #endif /* _NO_PROTO */
  90. /********    End Private Function Declarations    ********/
  91.  
  92.  
  93. #ifdef __cplusplus
  94. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  95. #endif
  96.  
  97. #endif /* _XmArrowGadgetP_h */
  98. /* DON'T ADD ANYTHING AFTER THIS #endif */
  99.